#ifndef CNC_BASE_PERSISTENT_DATA_H
#define CNC_BASE_PERSISTENT_DATA_H

#include "parameter.h"
#include <bcm/bcm.h>

namespace cnc {

	namespace base {

		struct PersistentData : bcm::Interface
		{
			virtual bool load(const char *filename) = 0;
			virtual bool save(const char *filename) = 0;
			virtual void clear() = 0;
			virtual const char *getFirstParameterName() = 0;
			virtual const char *getNextParameterName() = 0;
			virtual bool addParameter(const char *paramID, DataTypeID dataType) = 0;
			virtual bool removeParameter(const char *paramID) = 0;
			virtual Parameter *getParameter(const char *paramID) = 0;
		};

	} // namespace base

} // namespace cnc

#endif

